An Efficient and Flexible Implementation of Aspect-Oriented Languages
نویسنده
چکیده
Compilers for modern object-oriented programming languages generate code in a platform independent intermediate language [LY99, CLI06] preserving the concepts of the source language; for example, classes, fields, methods, and virtual or static dispatch can be directly identified within the intermediate code. To execute this intermediate code, state-of-the-art implementations of virtual machines perform just-in-time (JIT) compilation [DS84, ACL99, Ayc03] of the intermediate language; i.e., the virtual instructions in the intermediate code are compiled to native machine code at runtime. In this step, a declarative representation of source language concepts in the intermediate language facilitates highly efficient adaptive and speculative optimization of the running program which may not be possible otherwise. In contrast, constructs of aspect-oriented languages—which improve the separation of concerns—are commonly realized by compiling them to conventional intermediate language instructions or by driving transformations of the intermediate code, which is called weaving. This way the aspect-oriented constructs’ semantics is not preserved in a declarative manner at the intermediate language level. This representational gap between aspect-oriented concepts in the source code and in the intermediate code hinders high performance optimizations and weakens features of software engineering processes like debugging support or the continuity property of incremental compilation: modifying an aspect in the source code potentially requires re-weaving multiple other modules [SDR08, RDHN06]. To leverage language implementation techniques for aspect-oriented languages, this thesis proposes the Aspect-Language Implementation Architecture (ALIA) which prescribes—amongst others—the existence of an intermediate representation preserving the aspect-oriented constructs of the source program. A central component of this architecture is an extensible and flexible meta-model of aspect-oriented concepts which acts as an interface between front-ends (usually a compiler) and back-ends (usually a virtual machine) of aspect-oriented language implementations. The architecture
منابع مشابه
The C Object System: Using C as a High-Level Object-Oriented Language
The C Object System (COS) is a small C library which implements high-level concepts available in CLOS, OBJECTIVEC and other object-oriented programming languages: uniform object model (class, metaclass and property-metaclass), generic functions, multi-methods, delegation, properties, exceptions, contracts and closures. COS relies on the programmable capabilities of the C programming language to...
متن کاملFoal 2003 Proceedings Foundations of Aspect-oriented Langauges Workshop at Aosd 2003 Composition Graphs, a Foundation for Reasoning about Aspect-oriented Composition . . . . . . 1
Aspect-oriented languages offer new modularization concepts and composition approaches to provide more flexible solutions for the separation and integration of concerns. There are significant differences among aspect-oriented languages, due to the specific language constructs that they adopt. In this paper, we propose a common model, called Composition Graph, to represent different aspect-orien...
متن کاملFOAL 2003 Proceedings Foundations of Aspect-Oriented Langauges Workshop at AOSD 2003
Aspect-oriented languages offer new modularization concepts and composition approaches to provide more flexible solutions for the separation and integration of concerns. There are significant differences among aspect-oriented languages, due to the specific language constructs that they adopt. In this paper, we propose a common model, called Composition Graph, to represent different aspect-orien...
متن کاملComposition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition
Aspect-oriented languages offer new modularization concepts and composition approaches to provide more flexible solutions for the separation and integration of concerns. There are significant differences among aspect-oriented languages, due to the specific language constructs that they adopt. In this paper, we propose a common model, called Composition Graph, to represent different aspect-orien...
متن کاملExploring visual scenarios as an aspect-oriented modeling language
Very well known problems such as the fragility problem, the AOP paradox, or the aspect interference problem threaten aspect oriented application in the modeling phase. In this work we explore FVS, a declarative visual language, as an aspect-oriented modeling language. Our language exhibits a very flexible and rich joinpoint model to leverage aspect-oriented application and is suitable for incre...
متن کامل